Módulo Redes Sociales: Sesión 2

Departamento de Estadística

Universidad Nacional de Colombia, Sede Bogotá

Equipo de trabajo

Docente del módulo

Monitor del módulo

Código a ejecutar para empezar (de clic en “Code” para desplegar el código):

Code
# cambia idioma de la consola de R a español:
Sys.setenv(LANG="es")
# usar 2 cifras significativas y tiende a evitar 
# notación científica (ver ayuda de función: `options`): 
options(digits = 2, scipen = 999) 
# cargar librerías: 
if(!require(igraph)){
  install.packages("igraph"); library(igraph)}
if(!require(sand)){
  install.packages("sand"); library(sand)}

Introducción

Conformación, almacenamiento y gestión de datos relacionales:

  • Variables diádicas.
  • Variables nodales.
  • Variables derivadas (e.g., indicadoras de grupos).

Un grafo por sí solo (una colección de vértices y aristas) suele ser insuficiente para representar todos los atributos una red.

La decoración de un grafo corresponde a la conjunción de vértices y aristas con otras variables de interés (atributos).

La teoría de grafos es fundamental para analizar redes sociales.

Grafos

Un grafo G = (V, E) es una estructura que consiste de un conjunto de vértices (nodos) V y de un conjunto de aristas (enlaces) E, donde los elementos de E son parejas de la forma e=\{u,v\}, con u,v\in V.

El número de vértices |V| y el número de aristas |E| se conocen como el orden y el tamaño del grafo, respectivamente.

Los vértices del grafo se enumeran con los números enteros 1,\ldots,n o 0,\ldots,n-1, donde n = |V|.

Grafos y digrafos

Un grafo para el que cada arista \{u,v\}\in E es tal que \{u,v\} \not\equiv \{v,u\}, para todo u,v\in V se denomina grafo dirigido o digrafo. De lo contrario se llama grafo no dirigido o simplemente grafo.

Multigrafos

Un multigrafo es aquel grafo que permite múltiples aristas entre el mismo par de vértices y aristas de un vértice a sí mismo.

Un grafo que no es un multigrafo se denomina grafo simple.

Paquete multinet en R.

Ejemplo: red binaria no dirigida

Code
# red binaria no dirigida
g <- graph_from_literal(1-2, 1-3, 2-3, 2-4, 3-5, 4-5, 4-6, 4-7, 5-6, 6-7)
# otra manera
# g <- graph(edges = c(1,2, 1,3, 2,3, 2,4, 3,5, 4,5, 4,6, 4,7, 5,6, 6,7), directed = FALSE)
Code
# visualización
set.seed(123)
plot(g, vertex.size = 35, main = "Red binaria dirigida")

Code
# clase de objeto
class(g)
[1] "igraph"
Code
# identificador
graph_id(g)
[1] "0df1faaa-6ed3-11ef-8000-010000000000"
Code
# vértices
V(g)
+ 7/7 vertices, named, from 0df1faa:
[1] 1 2 3 4 5 6 7
Code
# orden
vcount(g)
[1] 7
Code
# aristas
E(g)
+ 10/10 edges from 0df1faa (vertex names):
 [1] 1--2 1--3 2--3 2--4 3--5 4--5 4--6 4--7 5--6 6--7
Code
# tamaño
ecount(g)
[1] 10
Code
# aristas (otro formato)
print_all(g)
IGRAPH 0df1faa UN-- 7 10 -- 
+ attr: name (v/c)
+ edges (vertex names):
1 -- 2, 3
2 -- 1, 3, 4
3 -- 1, 2, 5
4 -- 2, 5, 6, 7
5 -- 3, 4, 6
6 -- 4, 5, 7
7 -- 4, 6
Code
# ponderada?
is_weighted(g)
[1] FALSE
Code
# simple?
is_simple(g)
[1] TRUE